Conventionally, as an electrically rewritable non-volatile memory, there is well known a flash memory in which memory cells having a floating gate structure are NAND connected or NOR connected to one another to constitute a cell array. As a non-volatile memory allowing high-speed random access, a ferroelectric memory is also known.
Meanwhile, as a technology for further miniaturizing a memory cell, a resistance change type memory that uses a variable resistive element in a memory cell is proposed. Examples of the variable resistive element include a phase-change memory element that changes a resistance value by a state change of crystal/amorphousness of a chalcogenide compound, an MRAM element that uses a resistance change based on a tunnel magnetoresistance effect, a memory element of a polymer ferroelectric RAM (PFRAM) in which a resistive element is formed of a conductive polymer, and a ReRAM element that changes resistance by application of an electric pulse.
The memory cell of the resistance change type memory can be constituted of a serial circuit of a Schottky diode and a variable resistive element in place of a transistor. For this reason, even when one memory cell is provided at each intersection of word lines and bit lines, a high degree of integration can be achieved. In addition, data can be written/erased independently in each memory cell, not in a page unit like in a NAND-type flash memory.
However, a predetermined number of memory cells may be regarded as a page in the NAND-type flash memory in consideration of compatibility with the NAND-type flash memory, and data may be written/erased in a page unit.
In order to read/erase the data per page from the resistance change type memory in this manner, there is considered a method for first reading data of a predetermined number of memory cells of the page, subsequently masking the memory cells where data does not need to be written, then writing data into the page, finally masking the memory cells where data does not need to be erased, and then erasing data of the corresponding page.
However, when the data is written/erased, the corresponding process has three steps that include a step of reading data, a step of writing data, and a step of erasing data. For this reason, it is problematic that processing time and power consumption are large.